Extended input/output measurement word facility for obtaining measurement data in an emulated environment

ABSTRACT

An Extended Input/output (I/O) measurement word facility is provided. Provision is made for emulation of the Extended I/O measurement word facility. The facility provides for storing measurement data associated with a single I/O operation in an extended measurement word associated with an I/O response block. In a further aspect, the stored data may have a resolution of approximately one-half microsecond.

CROSS-REFERENCE TO RELATED APPLICATIONS:

This application is a continuation of U.S. patent application Ser. No.13/848,992 “EXTENDED INPUT/OUTPUT MEASUREMENT WORD FACILITY FOROBTAINING MEASUREMENT DATA” filed Mar. 22, 2013, which is a continuationof U.S. Pat. No. 8,407,373 “EXTENDED INPUT/OUTPUT MEASUREMENT WORDFACILITY FOR OBTAINING MEASUREMENT DATA” filed Feb. 28, 2012, which is acontinuation of U.S. Pat. No. 8,145,802 “EXTENDED INPUT/OUTPUTMEASUREMENT WORD FACILITY, AND EMULATION OF THAT FACILITY” filed Jan.12, 2011, which is a continuation of U.S. Pat. No. 7,516,248 “EXTENDEDINPUT/OUTPUT MEASUREMENT WORD FACILITY, AND EMULATION OF THAT FACILITY”filed Dec. 28, 2007, which is a continuation of U.S. Pat. No. 7,373,435“EXTENDED INPUT/OUTPUT MEASUREMENT BLOCK” filed Nov. 18, 2005, which isa division of U.S. Pat. No. 7,000,036 “EXTENDED INPUT/OUTPUT MEASUREMENTFACILITIES” filed May 12, 2003 and assigned to IBM. The disclosures ofthe foregoing applications are incorporated herein by reference.

TECHNICAL FIELD

This invention relates, in general, to performance monitoring, and inparticular, to input/output (I/O) measurement facilities used inperformance monitoring.

BACKGROUND OF THE INVENTION

Monitoring the performance of a computing environment includes analyzingmeasurement data collected for that environment. The measurement datathat is collected is used for accounting, capacity planning and/or todetermine where improvements are to be made so that system performancecan be enhanced.

One subsystem of a computing environment for which data is collected isthe I/O subsystem. In one example, an I/O measurement facility, such asthe Resource Management Facility (RMF) offered by International BusinessMachines Corporation, Armonk, N.Y., is used to accumulate data for theI/O subsystem. The data that is collected is associated with variouscomponents of the I/O subsystem, such as subchannels which represent I/Odevices, and is stored in measurement blocks for access by programs. Themeasurement blocks are stored in contiguous memory and thus, aparticular block is accessed by a measurement block origin and index.The data stored in the existing measurement blocks is an accumulation ofdata over a period of time for multiple I/O operations. In order todetermine the measurement data for a particular I/O operation, theoperating system needs to calculate the information for that I/Ooperation by subtracting the counters copied from the measurement blockbefore the I/O operation is started from the values in the measurementblocks after the I/O operation while also dealing with cases where thecounters wrap.

With the ever increasing size of the I/O subsystem, the contiguousstorage of the blocks is becoming cumbersome. Further, the measurementblocks are cumbersome because the operating system cannot dynamicallygrow the contiguous real storage when the system is up and running andadditional devices are dynamically added. Moreover, the existing blocksare inadequate for the information that is desired. Yet further, thetime it takes for a program to calculate the information for aparticular I/O operation is increasing and such calculations lead toinaccuracies because of the insufficient granularity.

A subchannel provides the logical appearance of a device to the programand contains the information required for sustaining a single I/Ooperation. The subchannel consists of internal storage that containsinformation in the form of a CCW address, channel-path identifier,device number, count, status indications, and I/O-interruption subclasscode, as well as information on path availability and functions pendingor being performed. I/O operations are initiated with a device byexecuting I/O instructions that designate the subchannel associated withthe device.

Each device is accessible by means of one subchannel per channelsubsystem to which it is assigned during installation. The device may bea physically identifiable unit or may be housed internal to a controlunit. For example, in certain disk-storage devices, each actuator usedin retrieving data is considered to be a device. In all cases, a device,from the point of view of the channel subsystem, is an entity that isuniquely associated with one subchannel and that responds to selectionby the channel subsystem by using the communication protocols definedfor the type of channel path by which it is accessible.

In some models, subchannels are provided in blocks. In these models,more subchannels may be provided than there are attached devices.Subchannels that are provided but do not have devices assigned to themare not used by the channel subsystem to perform any function and areindicated by storing the associated device number-valid bit as zero inthe subchannel information block of the subchannel.

The number of subchannels provided by the channel subsystem isindependent of the number of channel paths to the associated devices.For example, a device accessible through alternate channel paths stillis represented by a single subchannel. Each subchannel is addressed byusing a 16-bit binary subchannel number.

After I/O processing at the subchannel has been requested by executingSTART SUBCHANNEL, the CPU is released for other work, and the channelsubsystem assembles or disassembles data and synchronizes the transferof data bytes between the I/O device and main storage. To accomplishthis, the channel subsystem maintains and updates an address and a countthat describe the destination or source of data in main storage.Similarly, when an I/O device provides signals that should be brought tothe attention of the program, the channel subsystem transforms thesignals into status information and stores the information in thesubchannel, where it can be retrieved by the Program.

Resume Subchannel (RSCH):

The channel subsystem is signaled to perform the resume function at thedesignated subchannel.

General register 1 contains the subsystem identification word, whichdesignates the subchannel at which the resume function is to beperformed. The subchannel is made resume-pending.

Logically prior to the setting of condition code 0 and only if thesubchannel is currently in the suspended state, path-not-operationalconditions at the subchannel, if any, are cleared.

The channel subsystem is signaled to asynchronously perform the resumefunction.

Subsequent to the execution of RESUME SUBCHANNEL, the channel subsystemasynchronously performs the resume function. Except when the subchannelis subchannel-active, if the execution of RESUME SUBCHANNEL results inthe setting of condition code 0, performance of the resume functioncauses execution of a currently suspended channel program to be resumedwith the associated device, provided that the suspend flag for thecurrent CCW has been set to zero by the program. If the suspend flagremains set to one, execution of the channel program remains suspended.But, if the subchannel is subchannel active at the time the execution ofRESUME SUBCHANNEL results in the setting of condition code 0, then it isunpredictable whether execution of the current program is resumed orwhether it is found by the resume function that the subchannel hasbecome suspended in the interim. The subchannel is found to be suspendedby the resume function only if the subchannel is status-pending withintermediate status when the resume-pending condition is recognized bythe channel subsystem.

Start Subchannel (SSCH):

The channel subsystem is signaled to synchronously perform the startfunction for the associated device, and the execution parameters thatare contained in the designated ORB are placed at the designatedsubchannel.

General register 1 contains the subsystem identification word, whichdesignates the subchannel that is to be started. The second-operandaddress is the logical address of the ORB and is designated on a wordboundary.

The execution parameters contained in the ORB are placed at thesubchannel.

When START SUBCHANNEL is executed and the subchannel is status-pendingwith only secondary status and the extended-status-word format bit (Lbit) is zero, the status-pending condition is discarded at thesubchannel.

The subchannel is made start-pending, and the start function isindicated at the subchannel.

Logically prior to the setting of condition code 0, path-not-operationalconditions at the subchannel, if any, are cleared.

The channel subsystem is signaled to asynchronously perform the startfunction.

Condition code 0 is set to indicate that the actions described abovehave been taken.

Associated Functions

Subsequent to the execution of START SUBCHANNEL, the channel subsystemasynchronously performs the start function.

The contents of the ORB, other than the fields that must contain allzeros, are checked for validity. In some models, the fields of the ORBthat must contain zeros are also checked asynchronously (rather thanduring the execution of the instruction). When invalid fields aredetected asynchronously, the subchannel becomes status-pending withprimary, secondary, and alert status and with deferred condition code 1and program check indicated. In this situation, the I/O operation orchain of I/O operations is not initiated at the device, and thecondition is indicated by the start-pending bit being stored as one whenthe SCSW is cleared by the execution of TEST SUBCHANNEL.

In some models, path availability is tested asynchronously (rather thanas part of the execution of the instruction). When no channel path isavailable for selection, the subchannel becomes status-pending withprimary and secondary status and with deferred condition code 3indicated. The I/O operation or chain of I/O operations is not initiatedat the device, and this condition is indicated by the start-pending bitbeing stored as one when the SCSW is cleared by the execution of TESTSUBCHANNEL.

If conditions allow, a channel path is chosen and execution of thechannel program that is designated in the ORB is initiated.

Start Function and Resume Function

Subsequent to execution of START SUBCHANNEL and RESUME SUBCHANNEL, thechannel subsystem performs the start and resume functions, respectively,to initiate an I/O operation with the associated device. Performance ofa start or resume function consists of: (1) executing a path-managementoperation, (2) executing an I/O operation or chain of I/O operationswith the associated device, and (3) causing the sub-channel to be madestatus-pending, indicating completion of the start function. The startfunction initiates the execution of a channel program that is designatedin the ORB, which in turn is designated as the operand of STARTSUBCHANNEL, in contrast to the resume function which initiates theexecution of a suspended channel program, if any, beginning at the CCWthat caused suspension; otherwise, the resume function is performed asif it were a start function.

Start-Function and Resume-Function Path Management

A path-management operation is executed by the channel subsystem duringthe performance of either a start or resume function to choose anavailable channel path that can be used for device selection to initiatean I/O operation with that device. The actions taken are as follows:

-   1. If the subchannel is currently start-pending and device-active,    the start function remains pending at the subchannel until the    secondary status for the previous start function has been accepted    from the associated device and the subchannel is made start-pending    alone. When the status is accepted and it does not describe an alert    interruption condition, the subchannel is not made status-pending,    and the performance of the pending start function is subsequently    initiated. If the status describes an alert interruption condition,    the subchannel becomes status-pending with secondary and alert    status, the pending start function is not initiated, deferred    condition code 1 is set, and the start-pending bit remains one. If    the subchannel is currently start-pending alone, the performance of    the start function is initiated as described below.-   2. If a dedicated allegiance exists at the subchannel for a channel    path, the channel subsystem chooses that path for device selection.    If a busy condition is encountered while attempting to select the    device and a dedicated allegiance exists at the subchannel, the    start function remains pending until the internal indication of busy    is reset for that channel path. When the internal indication of busy    is reset, the performance of the pending start function is initiated    on that channel path.-   3. If no channel paths are available for selection and no dedicated    allegiance exists in the subchannel for a channel path, a channel    path is not chosen.-   4. If all channel paths that are available for selection have been    tried and one or more of them are being used to actively communicate    with other devices, or, alternatively, if the channel subsystem has    encountered either a control-unit-busy or device-busy condition on    one or more of those channel paths, or a combination of those    conditions on one or more of those channel paths, the start function    remains pending at the subchannel until a channel path, control    unit, or device, as appropriate, becomes available.-   5. If (1) the start function is to be initiated on a channel path    with a device attached to a type-1 control unit and (2) no other    device is attached to the same control unit whose subchannel has    either a dedicated allegiance to the same channel path or a working    allegiance to the same channel path where primary status has not    been received for that subchannel, then that channel path is chosen    if it is available for selection; otherwise, that channel path is    not chosen. If, however, another channel path to the device is    available for selection and if no allegiances exist as described    above, that channel path is chosen. If no other channel paths are    available for selection, the start or resume function, as    appropriate,remains pending until a channel path becomes available.-   6. If the device is attached to a type-3 control unit and if at    least one other device is attached to the same control unit whose    subchannel has a dedicated allegiance to the same channel path,    another channel path that is available for selection may be chosen,    or the start function remains pending until the dedicated allegiance    for the other device is cleared.-   7. If a channel path has been chosen and a busy indication is    received during device selection to initiate execution of the first    command of a pending channel program, the channel path over which    the busy indication is received is not used again for that device or    control unit (depending on the device-busy or control-unit-busy    indication received) until the internal indication of busy is reset.-   8. If, during an attempt to select the device in order to initiate    execution of the first command specified for the start or implied    for the resume function, the channel subsystem receives a busy    indication, it performs one of the following actions:-   a. If the device is specified to be operating in multipath mode and    the busy indication received is device busy, then the start or    resume function remains pending until the internal indication of    busy is reset.-   b. If the device is specified to be operating in multipath mode and    the busy indication received is control unit busy, or if the device    is specified to be operating in single-path mode, the channel    subsystem attempts selection of the device by choosing an alternate    channel path that is available for selection and continues the    path-management operation until either the start or resume function    is initiated or selection of the device has been attempted on all    channel paths that are available for selection. If the start or    resume function has not been initiated by the channel subsystem    after all channel paths available for selection have been chosen,    the start or resume function remains pending until the internal    indication of busy is reset.-   c. If the subchannel has a dedicated allegiance, then action 2    applies.-   9. When, during the selection attempt to transfer the first command,    the device appears not operational and the corresponding channel    path is operational for the subchannel, a path-not-operational    condition is recognized, and the state of the channel path changes    at the subchannel from operational for the subchannel to not    operational for the subchannel. The path-not-operational conditions    at the subchannel, if any, are preserved until the subchannel next    becomes clear-pending, start-pending, or resume-pending (if the    subchannel was suspended), at which time the path-not-operational    conditions are cleared. If, however, the corresponding channel path    is not operational for the subchannel, a path-not-operational    condition is not recognized. When the device appears not operational    during the selection attempt to transfer the first command on a    channel path that is available for selection, one of the following    actions occurs:-   a. If a dedicated allegiance exists for that channel path, then it    is the only channel path that is available for selection; therefore,    further attempts to initiate the start or resume function are    abandoned, and an interruption condition is recognized.-   b. If no dedicated allegiance exists and there are alternate channel    paths available for selection which have not been tried, one of    those channel paths is chosen to attempt device selection and    transfer the first command.-   c. If no dedicated allegiance exists, no alternate channel paths are    available for selection which have not been tried, and the device    has appeared operational on at least one of the channel paths that    were tried, the start or resume function remains pending at the    subchannel until either a channel path, a control unit, or the    device, as appropriate, becomes available.-   d. If no dedicated allegiance exists, no alternate channel paths are    available for 1 selection which have not been tried, and the device    has appeared not operational on all channel paths that were tried,    further attempts to initiate the start or resume function are    abandoned, and an interruption condition is recognized.-   10. When the subchannel is active and an I/O operation is to be    initiated with a device, all device selections occur according to    the LPUM indication if the multipath mode is not specified at the    subchannel. For example, if command chaining is specified, the    channel subsystem transfers the first and all subsequent commands    describing a chain of I/O operations over the same channel path.    Measurement-Block Update

The measurement-block-update facility provides the program with thecapability of accumulating performance information for subchannels thatare enabled for the measurement-block-update mode when themeasurement-block-update mode is active. A subchannel is enabled formeasurement-block-update mode by setting bit 11 of word 1 of the SCHIBoperand to one and then executing MODIFY SUBCHANNEL. Themeasurement-block-update mode is made active by executing SET CHANNELMONITOR when bit 62 of general register 1 is one.

When the measurement-block-update mode is active and the subchannel isenabled for the measurement-block-update mode, information isaccumulated in a measurement block associated with the subchannel. Ameasurement block is a 32-byte area in main storage that is associatedwith a subchannel for the purpose of accumulating measurement data. Theprogram specifies a contiguous area of absolute storage, referred to asthe measurement-block area, and subdivides this area into 32-byteblocks, one block for each subchannel for which measurement data is tobe Accumulated. The measurement-block-update facility uses themeasurement-block index contained at the subchannel in conjunction withthe measurement-block origin established by the execution of SET CHANNELMONITOR to compute the absolute address of the measurement blockassociated with a subchannel.

Measurement data is stored in the measurement block associated with thesubchannel each time an I/O operation or chain of I/O operationsinitiated by START SUBCHANNEL is suspended or completed. The completionof an I/O operation or chain of I/O operations is normally signaled bythe primary interruption condition. Seven fields are defined in themeasurement block in which measurement data is accumulated by themeasurement-block-update facility: SSCH+RSCH count, sample count,device-connect time, function-pending time, device-disconnect time,control-unit-queuing, and device-active-only time.

Measurement Block The measurement block is a 32-byte area at thelocation designated by the program, using the measurement-block originin conjunction with the measurement-block index. The measurement blockcontains the accumulated values of the measurement data described below.When the measurement-block-update mode is active and the subchannel isenabled for measurement-block update, the measurement-block-updatefacility accumulates the values for the measurement data that accrueduring the execution of an I/O operation or chain of I/O operationsinitiated by START SUBCHANNEL.

When the I/O operation or chain of I/O operations is suspended orcompleted and no error condition is encountered, the accrued values areadded to the accumulated values in the measurement block for thatsubchannel. If an error condition is detected and subchannel-logoutinformation is stored in the extended-status word (ESW), the accruedvalues are not added to the accumulated values in the measurement blockfor the subchannel, and the two count fields are not incremented.

If any of the accrued time values is detected to exceed the internalstorage provided for accruing these values, or the control unit cannotprovide an accurate queuing time or defer time for the currentoperation, or the channel subsystem successfully recovers from certainerror conditions, none of the accrued values are added to themeasurement block for the subchannel, the sample count is notincremented, but the SSCH+RSCH count is incremented.

Accesses to the measurement block by the measurement-block-updatefacility, in order to accumulate measurement data at the suspension orcompletion of an I/O function, appear block-concurrent to CPUs. CPUaccesses to the block, either fetches or stores, are inhibited duringthe time the measurement-block update is being performed by themeasurement-block-update facility.

SSCH+RSCH Count: Bits 0-15 of word 0 are used as a binary counter.During the performance of a start function for which measurement-blockupdate is active, when (1) the primary or secondary interruptioncondition, as appropriate, is recognized or (2) the suspend function isperformed, the counter is incremented by adding one in bit position 15,and the measurement data is stored. The counter wraps around from themaximum value of 65,535 to 0. The program is not alerted when counteroverflow occurs.

If the measurement-block-update mode is active and the subchannel isenabled for measuring, the SSCH+RSCH count is incremented even when thelack of measured values for an individual start function precludes theupdating of the remaining fields of the measurement block or when thetiming-facility bit for the subchannel is zero. The SSCH+RSCH count isnot incremented if the measurement-block-update mode is inactive, if thesubchannel is not enabled for the measurement block update, or ifsubchannel-logout information has been generated for the start function.

Sample Count: Bits 16-31 of word 0 are used as a binary counter. Whenthe time-accumulation fields following word 0 of the measurement blockare updated, the counter is incremented by adding one in bit position31. On some models, certain conditions may preclude themeasurement-block-update facility obtaining the accrued values of themeasurement data for an individual start function, even when themeasurement-block-update mode is active and the subchannel is enabledfor that mode. The control unit may also signal that it was not able toaccumulate an accurate queuing time. In these situations, thesample-count field is not incremented.

The counter wraps around from the maximum value of 65,535 to 0. Theprogram is not alerted when counter overflow occurs. This field is notupdated if the channel-subsystem-timing facility is not provided for thesubchannel.

The System Library publication for the system model specifies theconditions, if any, that preclude the updating of the sample count andtime accumulation fields of the measurement block.

Device-Connect Time: Bits 0-31 of word 1 contain the accumulation ofmeasured device-connect-time intervals. The device-connect-time interval(DCTI) is the sum of the time intervals measured whenever the device islogically connected to a channel path while the subchannel is subchannelactive and the device is actively communicating with the channel path.The device-connect time does not include the intervals when a device islogically connected to a channel path but is not actively communicatingwith the channel. The device reports the accumulation of time intervalswhen the device is logically connected but not actively communicatingwith the channel path as control-unit-defer time. The control-unit-defertime is not included in the device-connect-time measurement but, rather,is added to the accrued device-disconnect-time measurement for theoperation.

The time intervals are measured using a resolution of 128 microseconds.The accumulated value is modulo approximately 152.71 hours, and theprogram is not alerted when an overflow occurs. This field is notupdated if (1) the channel-subsystem-timing facility is not provided forthe subchannel, (2) the measurement-block-update mode is inactive, or(3) any of the time values accrued for the current start function hasbeen detected to exceed the internal storage in which it was accrued.

Accumulation of device-connect-time intervals for a subchannel andstoring this data in the ESW are not affected by whether themeasurement-block-update mode is active.

Function-Pending Time: Bits 0-31 of word 2 contain the accumulated SSCH-and RSCH-function-pending time. Function-pending time is the timeinterval between acceptance of the start function (or resume function ifthe subchannel is in the suspended state) at the subchannel andacceptance of the first command associated with the initiation orresumption of channel-program execution at the device.

When channel-program execution is suspended because of a suspend flag inthe first CCW of a channel program, the suspension occurs prior totransferring the first command to the device. In this case, thefunction-pending time accumulated up to that point is added to the valuein the function-pending-time field of the measurement block.Function-pending time is not accrued while the subchannel is suspended.Function-pending time begins to be accrued again, in this case, whenRESUME SUBCHANNEL is subsequently executed while the designatedsubchannel is in the suspended state.

The function-pending-time interval is measured using a resolution of 128microseconds. The accumulated value is modulo approximately 152.71hours, and the program is not alerted when an overflow occurs. Thisfield is not updated if the channel-subsystem-timing facility is notprovided for the subchannel.

Device-Disconnect Time: Bits 0-31 of word 3 contain the accumulateddevice-disconnect time. Device-disconnect time is the sum of the timeintervals measured whenever the device is logically disconnected fromthe channel subsystem while the subchannel is subchannel-active. Thedevice-disconnect time also includes the sum of control-unit-defer-timeintervals reported by the device during the I/O operation.

Device-disconnect time is not accrued while the subchannel is in thesuspended state. Device-disconnect time begins to be accrued again, inthis case, on the first device disconnection after channel-programexecution has been resumed at the device (the subchannel is againsubchannel-active).

The device-disconnect-time interval is measured by using a resolution of128 microseconds. The accumulated value is modulo approximately 152.71hours; the program is not alerted when an overflow occurs. This field isnot updated if the channel-subsystem-timing facility is not provided forthe subchannel.

The device-disconnect time does not include the interval between theprimary status condition and the secondary status condition at the endof an I/O operation when the subchannel is no longer subchannel-active,but the I/O device is active. If the channel subsystem provides thedevice-active-only measurement facility, this time is accumulated intothe device-active-only time field of the measurement block.

Control-Unit-Queuing Time: Bits 0-31 of word 4 contain the accumulatedcontrol-unit-queuing time. Control-unit-queuing time is the sum of thetime intervals measured by the control unit whenever the device islogically disconnected from the channel subsystem during an I/Ooperation while the device is busy with an operation initiated from adifferent system.

Control-unit-queuing time is not accrued while the subchannel is in thesuspended state. Control-unit-queuing time may be accrued for thechannel program after the subchannel becomes subchannel-active followinga successful Resumption.

The control-unit-queuing-time field is updated such that bit 31represents 128 microseconds. The accumulated value is moduloapproximately 152.71 hours; the program is not alerted when an overflowoccurs. This field is not updated if the channel-subsystem-timingfacility is not provided for the subchannel, or if the control unit doesnot provide a queuing time.

Device-active-only time: Bits 0-31 of word 5 contain the accumulateddevice-active-only time. Device-active-only time is the sum of the timeintervals when the subchannel is device-active but not subchannel-activeat the end of an I/O operation or chain of I/O operations initiated by astart function or resume function.

Device-active-only time is not accumulated when the subchannel isdevice-active during periods that the subchannel is active; such time isaccumulated as device-connect time or device-disconnect time asappropriate.

The device-active-only-time field is updated such that bit 31 represents128 microseconds. The accumulated value is modulo approximately 152.71hours; the program is not alerted when an overflow occurs. This field isnot updated if the channel-subsystem-timing facility is not provided forthe subchannel.

Control-Unit-Defer Time: Control-unit-defer time is the sum of the timeintervals measured by the control unit whenever the device is logicallyconnected to the channel subsystem during an I/O operation but is notactively communicating with the channel because of device-dependentdelays in channel program execution. The control-unit-defer-time is notstored in the measurement block as a separate measurement field but isused in the calculation of device-connect-time measurement anddevice-disconnect-time measurement for an operation.

Control-unit-defer time, if supported by a control unit, is accruedwhile the device is logically connected to the channel. The time isreported to the channel when channel-end status is presented that causesa device disconnection or terminates the I/O operation.Control-unit-defer time is subtracted from the device-connect-timemeasurement and is added to the device-disconnect-time measurementreported for the operation.

Reserved: The remaining words of the measurement block, along with anywords associated with facilities that are not provided by the channelsubsystem or the subchannel, are reserved for future use. They are notupdated by the measurement-block-update facility.

Measurement-Block Origin: The measurement-block origin specifies theabsolute address of the beginning of the measurement-block area on a32-byte boundary in main storage. The measurement-block origin is passedfrom general register 2 to the measurement-block-update facility whenSET CHANNEL MONITOR is executed with bit 62 of general register 1 set toOne.

Measurement-Block Key Bits 32-35 of general register 1 form the four-bitaccess key to be used for subsequent measurement-block updates when SETCHANNEL MONITOR causes the measurement-block-update mode to be madeactive. The measurement-block key is passed to themeasurement-block-update facility whenever the measurement-block originis passed.

Measurement-Block Index The measurement-block index is set in thesubchannel through the execution of MODIFY SUBCHANNEL. Themeasurement-block index specifies which 32-byte measurement block,relative to the measurement-block origin, is to be used for accumulatingthe measurement-block parameters for that subchannel. The location ofthe measurement block of a subchannel is computed by themeasurement-block-update facility by appending five rightmost zeros tothe measurement-block index of the subchannel and adding the result tothe measurement-block origin. The result is the absolute address of the32-byte measurement block for that subchannel. When the computedmeasurement-block address exceeds 2³¹−1, a measurement-blockprogram-check condition is recognized, and measurement-block updatingdoes not occur for the preceding subchannel-active Period.

Programming Note: The initial value of the measurement-block index iszero. The program is responsible for setting the measurement-block indexto the proper value prior to enabling the subchannel for themeasurement-block-update mode and making the mode active. To precludethe possibility of unpredictable results for the measured parameters inthe measurement block, each subchannel for which measured parameters areto be accumulated must have a different value for its measurement-blockindex.

Measurement-Block-Update Mode: The measurement-block-update mode is madeactive by executing SET CHANNEL MONITOR with bit 62 of general register1 set to one. If bit 62 of general register 1 is zero when SET CHANNELMONITOR is executed, the mode is made inactive. When themeasurement-block-update mode is inactive, no measurement values areaccumulated in main storage. When the measurement-block-update mode ismade active, the contents of general register 2 are passed to themeasurement-block-update facility as the absolute address of themeasurement-block origin. The MBK is also passed to themeasurement-block-update facility as the access key to be used whenupdating the measurement block for each subchannel. When themeasurement-block-update mode is active, the measurement-block-updatefacility accumulates measurements in individual measurement blockswithin the measurement-block area for subchannels whosemeasurement-block-update-enable bit is one.

If the measurement-block-update mode is already active when SET CHANNELMONITOR is executed, the values for the measurement-block origin andmeasurement-block key that are used for a subchannel enabled formeasuring by the

measurement-block-update facility are dependent upon whether SET CHANNELMONITOR is executed prior to, during, or subsequent to execution ofSTART SUBCHANNEL for that subchannel. If SET CHANNEL MONITOR is executedprior to START SUBCHANNEL, the current measurement-block origin andmeasurement-block key are in control. If SET CHANNEL MONITOR is executedduring or subsequent to execution of START SUBCHANNEL, it isunpredictable whether the measurement-block origin and measurement-blockkey that are in control are old or current.

Measurement-Block-Update Enable Bit 11, word 1, of the SCHIB is themeasurement-block-update-enable bit. This bit provides the capability ofcontrolling the accumulation of measurement-block parameters on asubchannel basis. The initial value of the enable bit is zero.

When MODIFY SUBCHANNEL is executed with the enable bit set to one in theSCHIB, the subchannel is enabled for the measurement-block-update mode.If the measurement-block-update mode is active, themeasurement-block-update facility accumulates measurement-blockparameters for the subchannel, starting with the next START SUBCHANNELissued to that subchannel. Similarly, if MODIFY SUBCHANNEL is executedwith bit 11 of word 1 of the SCHIB operand set to zero by the program,the subchannel is disabled for the measurement-block-update mode, and noadditional measurement-block parameters are accumulated for thatsubchannel.

Control-Unit-Queuing Measurement: The control-unit-queuing-measurementfacility allows the channel subsystem to accept queuing times fromcontrol units and, in conjunction with the measurement-block-updatefacility, to accumulate those times in the measurement block.

The System Library publication for the control-unit model specifies itsability to supply queuing time. If a control-unit model is capable ofsupplying queuing time, the publication specifies the conditions thatprevent the control unit from accumulating an accuratecontrol-unit-queuing time.

Control-Unit-Defer Time: The control-unit-defer-time facility allows thechannel subsystem to accept defer times from control units and, inconjunction with the measurement-block-update facility, to modify thedevice-connect and device-disconnect times reported in the measurementblock to reflect the defer time. The control-unit-defer time issubtracted from the device-connect-time measurement and is added to thedevice-disconnect-time measurement reported for an I/O operation.

The System Library publication for the control-unit model specifies itsability to supply defer time. If a control-unit model is capable ofsupplying defer time, the publication specifies the conditions thatprevent the control unit from accumulating an accuratecontrol-unit-defer time.

Device-Active-Only Measurement The device-active-only-measurementfacility permits the channel subsystem to report the times that thedevice is disconnected between primary status and secondary status atthe end of an I/O operation or chain of I/O operations. Thedevice-actively-only time is accumulated into word 5 of the 32-bytemeasurement block. This time is not otherwise represented by themeasurement data.: When the device-active-only-measurement facility isnot installed, measurement block updates are performed when thesubchannel becomes status pending for primary status. When thedevice-active-only-measurement facility is installed, the measurementblock updates are performed at the time that secondary status isaccepted from the I/O device, in order that the device-active timebetween primary status and secondary status can be reported.

If the subchannel is start pending when secondary status is acceptedfrom the I/O device and the measurement block update is to be performed,the measurement block update is performed prior to performing the startfunction. If measurement-block errors occur, they are reported to theprogram along with the secondary status instead of performing the startfunction.

Time-Interval-Measurement Accuracy On some models, when time intervalsare to be measured and condition code 0 is set for START SUBCHANNEL (orRESUME SUBCHANNEL in the case of a suspended subchannel), a period oflatency may occur prior to the initiation of the function-pending timemeasurement. The System Library publication for the system modelspecifies the mean latency value and variance for each of the measuredtime intervals.

Programming Notes:

1. Excessive delays may be encountered by the channel subsystem whenattempting to update measurement data if the program is concurrentlyaccessing the same measurement-block area. A programming conventionshould ensure that the storage block designated by SET CHANNEL MONITORis made read-only while the measurement-block-update mode is Active.

2. To ensure that programs written to support measurement functions areexecuted properly, the program should initialize all the measurementblocks to zeros prior to making the measurement-block-update modeactive. Only zeros should appear in the reserved and unused words of themeasurement blocks.

3. When the incrementing of an accumulate value causes a carry to bepropagated out of bit position 0, the carry is ignored, and accumulatingcontinues from zero on.

Device-Connect-Time Measurement

The device-connect-time-measurement facility provides the program withthe capability of retrieving the length of time that a device isactively communicating with the channel subsystem while executing achannel program. The measured length of time that the device spendsactively communicating on a channel path during the execution of achannel program is called the device-connect-time interval (DCTI).Control-unit-defer time is not included in the DCTI.

If timing facilities are provided for the subchannel, the DCTI value ispassed to the program in the extended-status word (ESW) at thecompletion of the operation when the primary-status condition is clearedby TEST SUBCHANNEL and when TEST SUBCHANNEL clears anintermediate-status condition alone while the subchannel is suspended.The DCTI value passed in the ESW pertains to the previoussubchannel-active period. The passing of the DCTI in the ESW is underprogram control by the SET CHANNEL MONITORdevice-connect-time-measurement mode-control bit and the correspondingenable bit in the subchannel. However, the DCTI value is not stored inthe ESW if the I/O function initiated by START SUBCHANNEL is terminatedbecause of an error condition that is described by subchannel logout. Inthis case, the extended-status bit (L) of the SCSW is stored as one,indicating that the ESW contains logout information describing the errorcondition. If the accrued DCTI value exceeded 8.388608 seconds duringthe previous subchannel-active period, then the maximum value (FFFF hex)is passed in the ESW.

Device-Connect-Time-Measurement Mode The device-connect-time-measurementmode is made active by executing SET CHANNEL MONITOR when bit 63 ofgeneral register 1 is one. If bit 63 of general register 1 is zero whenSET CHANNEL MONITOR is executed, the mode is made inactive, and DCTIsare not passed to the program. When timing facilities are provided forthe subchannel, the device-connect-time-measurement mode is active, andthe subchannel is enabled for the mode, the DCTI value is passed to theprogram in the ESW stored when TEST SUBCHANNEL (1) clears theprimary-interruption condition with no logout information indicated inthe SCSW (extended-status-word-format bit is zero) or (2) clears theintermediate-status condition alone while the subchannel is suspended.

If a start function is currently being executed with a subchannelenabled for the device-connect-time-measurement mode when SET CHANNELMONITOR makes this mode active for the channel subsystem, the value ofthe DCTI stored under the appropriate conditions may be zero, a partialresult, or the full and correct value, depending on the model and theprogress of the start function at the time the mode was activated.Provision of the DCTI value in the measurement-block area is notaffected by whether the device-connect-time-measurement mode is active.

Device-Connect-Time-Measurement Enable Bit 12, word 1, of the SCHIB isthe device-connect-time measurement-mode enable bit. This bit providesthe program with the capability of selectively controlling the storingof DCTI values for a subchannel when the device-connect-time-measurementmode is active. The initial value of the enable bit is zero. When thisenable bit is one in the SCHIB and MODIFY SUBCHANNEL is executed, thesubchannel is enabled for the device-connect-time-measurement mode. Ifthe device-connect-time-measurement mode is active, thedevice-connect-time-measurement facility begins providing DCTI valuesfor the subchannel, starting with the next START SUBCHANNEL issued tothe subchannel. In this situation, the DCTI values are provided in theESW. Similarly, if MODIFY SUBCHANNEL is executed with bit 12, word 1, ofthe SCHIB operand set to zero by the program, the subchannel is disabledfor the device-connect-time-measurement mode, and no further DCTI valuesare passed to the program for that subchannel.

Signals and Resets

During system operation, it may become necessary to terminate an I/Ooperation or to reset either the I/O system or a portion of the I/Osystem. (The I/O system consists of the channel subsystem plus all ofthe attached control units and devices.) Various signals and resets areprovided for this purpose. Three signals are provided for the channelsubsystem to notify an I/O device to terminate an operation or perform areset function or both. Two resets are provided to cause the channelsubsystem to reinitialize certain information contained either at theI/O device or at the channel subsystem.

Based on the foregoing, enhancements are needed in obtaining measurementdata. For example, a need exists for a capability that enhances themeasurement blocks and the storage thereof. Further, a need exists foran improved capability for obtaining measurement data for a singleoperation.

SUMMARY OF THE INVENTION

The shortcomings of the prior art are overcome and additional advantagesare provided through the provision of a method of facilitating access tomeasurement data of a computing environment. The method includes, forinstance, obtaining measurement data for an I/O operation directly froma measurement unit, wherein the measurement unit includes measurementdata exclusive to the selected I/O operation.

In a further aspect of the present invention, a method of accessingmeasurement blocks of a computing environment is provided. The methodincludes, for instance, using a measurement block address to directlyaccess a measurement block associated with an input/output (I/O)component of the computing environment, wherein the measurement block isaccessed absent use of a measurement block origin and measurement blockindex.

In yet a further aspect of the present invention, a method offacilitating access to measurement data of a computing environment isprovided. The method includes, for instance, providing for one or moreI/O components of an I/O path of a control unit of the computingenvironment individual time measurement data specific to the one or moreI/O components.

System and computer program products corresponding to theabove-summarized methods are also described and claimed herein.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1A depicts one embodiment of a computing environment to incorporateand use one or more aspects of the present invention;

FIG. 1B depicts one example of an I/O path (e.g., a channel path) usedfor communications in the computing environment of FIG. 1 a, inaccordance with an aspect of the present invention;

FIG. 1C depicts one embodiment of an example of an I/O subsystem (e.g.,a channel subsystem) of FIG. 1 a being configured as a plurality of I/Osubsystem (e.g., channel subsystem) images, in accordance with an aspectof the present invention;

FIG. 1D depicts further details of a multiple image facility (MIF) imageof a channel subsystem image of FIG. 1 c, in accordance with an aspectof the present invention;

FIG. 1E depicts further details of a channel path set (CPS) of a channelsubsystem image of FIG. 1 c, in accordance with an aspect of the presentinvention;

FIG. 2 depicts one example of an extended channel measurement block, inaccordance with an aspect of the present invention;

FIG. 3 depicts one embodiment of an extended secondary queue measurementblock, in accordance with an aspect of the present invention;

FIG. 4A depicts one embodiment of a request block for a store secondaryqueue measurement data command used in accordance with an aspect of thepresent invention;

FIG. 4B depicts one embodiment of a response block for the storesecondary queue measurement data command of FIG. 4 a, in accordance withan aspect of the present invention;

FIG. 5 depicts one embodiment of an extended measurement word, inaccordance with an aspect of the present invention; and

FIG. 6 depicts one embodiment of the logic associated with generatingthe extended measurement word and providing it to a program, inaccordance with an aspect of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In accordance with an aspect of the present invention, an extendedmeasurement block facility is provided in which measurement blocks arestored in discontiguous memory and can be accessed via a measurementblock address rather than by using a measurement block origin andmeasurement block index. Further, in one aspect of the invention, themeasurement block is extended to include additional information. In yeta further aspect of the present invention, an extended measurement wordfacility is provided in which measurement data for a single I/Ooperation is returned directly to the program without having the programcalculate the measurement data for that I/O operation. This isfacilitated by an extended measurement word that is returned along withthe ending status of the I/O operation via an instruction. In oneexample, one or more measurement fields in the extended measurement wordmay be stored with a time resolution of approximately one-halfmicrosecond to provide the accuracy needed for measurements associatedwith the single I/O operation.

One embodiment of a computing environment to incorporate and use one ormore aspects of the present invention is described with reference toFIG. 1 a. In one example, computing environment 100 is based on thez/Architecture, offered by International Business Machines Corporation,Armonk, N.Y. The z/Architecture is described in an IBM Publicationentitled “z/Architecture Principles of Operation,” Publication No.SA22-7832-01, October 2001, which is hereby incorporated herein byreference in its entirety.

As one example, computing environment 100 includes a central processorcomplex (CPC) 102 coupled to one or more input/output (I/O) devices 106via one or more control units 108. Central processor complex 102includes, for instance, one or more central processors 110, one or morepartitions 112 (e.g., logical partitions (LP)), a logical partitionhypervisor 114, and an input/output subsystem 115, each of which isdescribed below.

Central processors 110 are physical processor resources allocated to thelogical partition. In particular, each logical partition 112 has one ormore logical processors, each of which represents all or a share of aphysical processor 110 allocated to the partition. The physicalprocessors to which the logical processors are dispatched (by thehypervisor) may be either dedicated to a given partition's logicalprocessors or shared by logical processors configured to multiplesharing logical partitions.

A logical partition functions as a separate system and has one or moreapplications and a resident operating system therein, which may differfor each logical partition. In one embodiment, the operating system isthe z/OS operating system, the z/VM operating system, the Linux onzSeries operating system or the TPF operating system, offered byInternational Business Machines Corporation, Armonk, N.Y.

Logical partitions 112 are managed by a logical partition hypervisor114, which is implemented by Licensed Internal Code running onprocessors 110. The logical partitions and logical partition hypervisoreach comprise one or more programs residing in respective partitions ofcentral storage associated with the central processors. One example oflogical partition hypervisor 114 is the Processor Resource/SystemManager (PR/SM), offered by International Business Machines Corporation,Armonk, N.Y. Further details regarding logical partitions are describedin, for instance, Guyette et al., U.S. Pat. No. 4,564,903, entitled“Partitioned Multiprocessor Programming System,” issued on Jan. 14,1986; Bean et al., U.S. Pat. No. 4,843,541, entitled “Logical ResourcePartitioning Of A Data Processing System,” issued on Jun. 27, 1989; andKubala, U.S. Pat. No. 5,564,040, entitled “Method And Apparatus ForProviding A Server Function In A Logically Partitioned HardwareMachine,” issued on Oct. 8, 1996, each of which is hereby incorporatedherein by reference in its entirety.

Input/output subsystem 115 directs the flow of information betweeninput/output devices 106 and main storage. It is coupled to the centralprocessing complex, in that it can be a part of the central processingcomplex or separate therefrom. The I/O subsystem relieves the centralprocessors of the task of communicating directly with the input/outputdevices and permits data processing to proceed concurrently withinput/output processing. To provide communications, the I/O subsystememploys I/O communications adapters. There are various types ofcommunications adapters including, for instance, channels, I/O adapters,PCI cards, Ethernet cards, Small Computer Storage Interface (SCSI)cards, etc. In the particular example described herein, the I/Ocommunications adapters are channels, and therefore, the I/O subsystemis referred to herein as a channel subsystem. However, this is only oneexample. Other types of I/O subsystems can incorporate and use one ormore aspects of the present invention.

The I/O subsystem uses one or more input/output paths as communicationlinks in managing the flow of information to or from input/outputdevices 106. In this particular example, these paths are called channelpaths, since the communications adapters are channels. Each channel path116 (FIG. 1 b) includes a channel 117 of channel subsystem 115, acontrol unit 108, a link 118 (e.g., serial or parallel) between thechannel and control unit, and one or more I/O devices 106 coupled to thecontrol unit. In other embodiments, channel paths may have multiplecontrol units and/or other components. Further, in another example, itis also possible to have one or more dynamic switches as part of thechannel path. A dynamic switch is coupled to a channel and a controlunit and provides the capability of physically interconnecting any twolinks that are attached to the switch. Further details regarding channelsubsystems are described in Casper et al., U.S. Pat. No. 5,526,484,entitled, “Method And System For Pipelining The Processing Of ChannelCommand Words,” issued on Jun. 11, 1996, which is hereby incorporatedherein by reference in its entirety.

A control unit may be accessible by the channel subsystem by more thanone channel path. Similarly, an I/O device may be accessible by thechannel subsystem through more than one control unit, each having one ormore channel paths to the channel subsystem. The control unit acceptscontrol signals from the channel subsystem, controls the timing of datatransfer over the channel path, and provides indications concerning thestatus of the device. The control unit may be housed separately or itmay be physically and logically integrated with the I/O device, thechannel subsystem, or a central processor.

The I/O device attached to the control unit may be designed to performcertain limited operations, or it may perform many different operations.To accomplish its operations, the device uses detailed signal sequencespeculiar to its type of device. The control unit decodes the commandsreceived from the channel subsystem, interprets them for the particulartype of device, and provides the signal sequence required for theperformance of the operation.

In addition to one or more channels, a channel subsystem includes one ormore subchannels. Each subchannel is provided for and dedicated to anI/O device coupled to the program through the channel subsystem. Eachsubchannel provides information concerning the associated I/O device andits attachment to the channel subsystem. The subchannel also providesinformation concerning I/O operations and functions involving theassociated I/O device. The subchannel provides a logical appearance of adevice to the program and is the means by which the channel subsystemprovides information about associated I/O devices to the centralprocessors, which obtain this information by executing machine I/Oinstructions (e.g., a store subchannel instruction). The subchannel hasinternal storage that includes information in the form of a channelcommand word (CCW) address, one or more channel path identifiers, devicenumber, count, status indication, I/O interruption subclass code,information on path availability and functions pending or beingperformed, as well as information associated with one or more aspects ofthe present invention, as described below. I/O operations are initiatedand terminated with a device by the execution of I/O instructions thatdesignate the subchannel associated with the device.

Further details regarding a channel subsystem are described withreference to FIG. 1 c. A channel subsystem 115 (or other I/O subsystem)is configured as a plurality of channel subsystem images 120 (or otherI/O subsystem images), each identified by a channel subsystem imageidentifier (CSSID) (or other I/O subsystem identifier). In one example,the channel subsystem is configured, either by model dependent means, inwhich configuration controls are used during initialization, or by useof appropriate dynamic I/O configuration commands, as one to 256 channelsubsystem images. Each channel subsystem image appears to a program as acomplete channel subsystem. Each channel subsystem image may have, forinstance, from 1 to 256 unique channel paths, thereby increasing themaximum number of channel paths that may be configured to the channelsubsystem from 256 to 65,536. The configuring of the channel subsystemas a plurality of channel subsystem images is facilitated by a MultipleChannel Subsystem facility (MCSS), one embodiment of which is describedin a U.S. patent application entitled “Multiple Logical Input/OutputSubsystem Facility,” Brice et al., U.S. application Ser. No. 10/436,021filed on May 12, 2003, now U.S. Pat. No. 7,290,070, filed herewith andincorporated herein by reference in its entirety.

A channel subsystem image 120 includes, for instance, a multiple imagefacility (MIF) 122, which includes one or more (e.g., up to 16) MIFimages, each identified by a MIF image identifier (IID). The multipleimage facility allows each logical partition to achieve independentaccess to the channel paths, control units and I/O devices that areconfigured to and dynamically shared by multiple logical partitions.

As shown in FIG. 1 d, for each MIF image, a separate set of channel pathcontrols and a separate set of subchannel controls are provided by thechannel subsystem. For each MIF image, each set of channel path controlsfor each configured channel path is called a channel path image 124. Thecollection of one or more channel path images associated with thechannel paths that are configured to a MIF image is called a channelpath image set 126. Further, for each MIF image, a separate subchannel,called a subchannel image 128, is provided for each I/O device that isconfigured to the MIF image. A collection of one or more subchannelimages that are configured to a MIF image is called a subchannel imageset 130.

Referring back to FIG. 1 c, in addition to a MIF, a channel subsystemimage 120 also includes a channel path set (CPS) 134. Channel path set134 includes, for instance, one to 256 channel paths 140 (FIG. 1 e)configured to one or more channel path images in the associated MIF.Each channel path is identified by a channel path identifier (CHPID).Each channel path configured to a channel path set may be unique fromother channel paths configured to other provided channel subsystemimages. However, because as many as 256 channel subsystem images may beprovided, the CHPID values assigned to channel paths in each of thechannel path sets may not be unique. Therefore, each channel path isspecified by a unique address formed by, for instance, a concatenationof CSSID with the channel path identifier assigned to the channel path.The image ID (IID) further identifies a channel path image for eachconfigured channel path.

The performance of a computing environment is monitored to detect andcorrect inefficiencies in performance with a goal of improving systemperformance. In order to monitor system performance, measurement data iscollected and analyzed. Measurement data is also collected to facilitatein accounting, as well as capacity planning. As one example, measurementdata relating to I/O operations is colleted and stored in measurementblocks assigned to devices. For example, a measurement block is definedfor each subchannel for which measurement data is to be collected anddata is stored in the block by, for instance, the channel subsystemduring performance of one or more I/O operations.

In accordance with an aspect of the present invention, the measurementblocks for the subchannels are located in discontiguous areas of mainreal storage, and are accessed by unique measurement block addresses. Byusing an address, the channel subsystem can directly access a channelmeasurement block without having to use a measurement block origin ormeasurement block index. Measurement blocks can be individuallyallocated or de-allocated as subchannels are dynamically added orremoved, respectively. In one example, an address of a measurement blockis assigned to a subchannel via an instruction, such as a modifysubchannel instruction. This allows the channel subsystem to use theaddress to directly access the measurement block.

One example of a measurement block is described with reference to FIG.2. In this example, the measurement block has a 64 byte format and thus,is referred to herein as an extended measurement block. Some of thefields of the measurement block are further described in an IBMPublication entitled “z/Architecture Principles of Operation,”Publication No. SA22-7832-01, October 2001, which is hereby incorporatedherein by reference in its entirety. In one example, a measurement block200 includes the following fields:

-   a) SSCH+RSCH Count 202: This field is used as a counter during    performance of a start I/O function, such as a start subchannel    function, and/or resume function.-   b) Sample Count 204: This field is used as a counter when the time    accumulation fields of the measurement block, described below, are    updated.-   c) Device Connect Time 206: This field includes the accumulation of    measured device connect time intervals. The device connect time    interval is the sum of the time intervals measured whenever the    device is logically connected to a channel path, while the    subchannel is subchannel active and the device is actively    communicating with the channel path.-   d) Function Pending Time 208: This field includes the accumulated    SSCH-and RSCH-function pending time. The function pending time is    the time interval between acceptance of the start function (or    resume function if the subchannel is in the suspended state) at the    subchannel and acceptance of the first command associated with the    initiation or resumption of channel program execution at the device.-   e) Device Disconnect Time 210: This field includes the accumulated    device disconnect time. The device disconnect time is the sum of the    time intervals measured whenever the device is logically    disconnected from the channel subsystem while the subchannel is    subchannel active. The device disconnect time also includes the sum    of control unit defer time intervals reported by the device during    the I/O operation.-   f) Control Unit Queuing Time 212: This field includes the    accumulated control unit queuing time. Control unit queuing time is    the sum of the time intervals measured by the control unit whenever    the device is logically disconnected from the channel subsystem    during an I/O operation while the device is busy with an operation    initiated from a different system.-   g) Device Active Only Time 214: This field includes the accumulated    device active only time. Device active only time is the sum of the    time intervals when the subchannel is device active, but not    subchannel active at the end of an I/O operation or chain of I/O    operations initiated by a start function or resume function.-   h) Device Busy Time 216: This field includes the accumulated device    busy time. Device busy time is the sum of the time intervals when    the subchannel is device busy during an attempt to initiate a start    function or resume function at the subchannel. The device busy time    field is updated such that a bit (e.g., the last bit) represents,    for instance, 128 microseconds. The accumulated value is modulo    approximately 152.71 hours.-   i) Initial Command Response Time 218: This field includes the    accumulated initial command response time for the subchannel. The    initial command response time for a start or resume function is the    time interval beginning from when the first command of the channel    program is sent to the device until the device indicates it has    accepted the command. The initial command response time is stored at    a resolution of, for instance, 128 microseconds. The accumulated    value is modulo approximately 152.71 hours.

The information in an extended measurement block is accessible by theoperating system by using virtual addressing to locate the measurementblock in main memory.

In addition to obtaining the above described measurement data, data isalso obtained that is associated with one or more secondary queuesassociated with one or more subchannels. A secondary queue is a queue ofI/O requests that the channel subsystem has begun to process, but isunable to complete because of a busy condition in the I/O configuration.The channel subsystem stores data in the queue as it encounters busyconditions for the various I/O components associated with the I/Orequests.

One example of a secondary queue measurement block is described withreference to FIG. 3. In this example, the secondary queue measurementblock has a 64 word format and thus, is referred to herein as anextended secondary queue measurement block. In one example, an extendedsecondary queue measurement block 300 includes, for instance, thefollowing:

-   a) Queue Valid Indicator (B) 302: This indicator indicates whether    the specified secondary queue is valid. A secondary queue is valid    when it exists within the channel subsystem.-   b) Queue Out Of Range (R) 304: This field indicates that the    specified secondary queue does not exist within the channel    subsystem and that any queue number greater than the specified queue    number also does not exist within the channel subsystem.-   c) Queue Count 306: This field indicates the current length of a    specified secondary queue. The length of the queue is determined by    the number of subchannels on the associated secondary queue that are    function pending and are delayed because of busy conditions.-   d) Queue Number 308: This field includes the identity of the    secondary queue to which the information in this secondary queue    measurement block applies.-   e) Summation of Queue Counts 310: This field includes an    accumulation of the queue count field. The queue count field is    added to the summation at the time a subchannel is added to the    specified secondary queue, and the count includes this addition of    the subchannel to the specified secondary queue.-   f) Summation of Enqueues 312: This field includes a count of the    number of times a subchannel is added to the specified secondary    queue.-   g) Summation of Channel Wait Time 314: This field includes the    summation of the channel wait time encountered by the channel    subsystem for each SSCH or RSCH function initiated to devices    attached to this secondary queue. The channel wait time for a SSCH    or RSCH function is that portion of the function pending time that    cannot be attributed to a control unit busy, device busy or    destination busy condition on a channel path. It is the time    interval between acceptance of the start or resume function at the    subchannel until the channel subsystem first attempts to initiate    the operation on a channel path. The summation of the channel wait    time is stored at a resolution of, for instance, 128 microseconds.    The accumulated value is modulo approximately 152.71 hours.-   h) Switch Busy Counts 316: This field includes a count of the number    of times an initial selection sequence for a start or halt function    resulted in a switch busy response on the corresponding channel    path. Each switch busy count field (e.g., 0 to 7) corresponds one    for one, by relative position, with the path installed mask (PIM)    bits of the subchannels associated with the specified secondary    queue. The path installed mask indicates which of the channel paths    0-7 to an I/O device are physically installed.-   i) Control Unit Busy Counts 318: This field includes a count of the    number of times an initial selection sequence for a start or halt    function resulted in a control unit busy response on the    corresponding channel path. Each control unit busy count field    corresponds one for one, by relative position, with the PIM bits of    the subchannels associated with the specified secondary queue.-   j) Success Counts 320: The success counts fields include a count of    the number of times an initial selection sequence for a start    function resulted in the device accepting the first command of the    channel program on the corresponding channel path. Each success    count field corresponds one for one, by relative position, with the    PIM bits of the subchannels associated with the specified secondary    queue.-   k) Control Unit Busy Time Fields 322: These fields include the    accumulated control unit busy time for the channel paths on a    specified secondary queue. Control unit busy time is accumulated for    a channel path from the time an initial selection sequence for a    start or halt receives a control unit busy indication until a    control unit end condition is recognized on the path. The control    unit busy time is stored at a resolution of, for instance, 128    microseconds. The accumulated value is modulo approximately 152.71    hours.-   l) Initial Command Response Time Fields 324: These fields include    the accumulated initial command response time for start or resume    functions successfully initiated on the channel path for the    specified secondary queue. The initial command response time for a    start or resume function is the time interval beginning from when    the first command of the channel program is sent to the device until    the device indicates it has accepted the command. The initial    command response time is stored at a resolution of, for instance,    128 microseconds. The accumulated value is modulo approximately    152.71 hours.-   m) Switch Busy Count Summation Fields 326: These fields include a    summation of the switch busy counts received for all partitions for    the corresponding channel path on the specified secondary queue.    Each switch busy count summation field corresponds one for one, by    relative position, with the PIM bits of the subchannels associated    with the specified secondary queue.

In one example, the extended secondary queue measurement block isreturned as part of executing a command, such as a store secondary queuemeasurement data command. The store secondary queue measurement datacommand is used to obtain the measurement data for a range of secondaryqueues (e.g., logical control unit queues) maintained by the channelsubsystem. Information is returned to the program in the form of a 64word extended secondary queue measurement block. The informationreturned includes general queuing statistics and measurement informationfor each of the channels attached to the secondary queue (up to 8channels may be attached to a secondary queue, in one example).

One embodiment of a command request block for a store secondary queuemeasurement data command is described with reference to FIG. 4 a. In theexample described herein, it is assumed that the environment is alogical partitioned environment and that the multiple channel subsystemfacility is provided by the CPC. Since the multiple channel subsystemfacility is provided, the secondary queue measurement data for aspecified range of target queues is defined within a channel subsystemimage that is specified by the effective CSSID. In one example, acommand request block for the store secondary queue measurement datacommand 400 includes, for instance, the following:

-   a) Length Field 402: This field specifies the length of the command    request block.-   b) Command Code 404: This field specifies the store secondary queue    measurement data command.-   c) Multiple Channel Subsystem Bit M) 406: This field indicates that    the CSSID field is to be checked for a valid CSSID. If valid, the    value in the CSSID field becomes the effective CSSID.    If not valid, then a response code may be stored. When M is zero,    the default CSSID is the effective CSSID, and the CSSID field is to    be zero.-   d) MIF Image ID (IID) 408: This field is set to zeros.-   e) Extended I/O Measurement Block Format (E) 410: This field    specifies the format of the response block that is to be stored in    response to the command request. In one example, a format of one    indicates the extended channel secondary queue measurement block.-   f) Format (FMT) 412: This field indicates the command request format    field whose value specifies the layout of the command request block.    In one example, the value of this field is zero.-   g) First Queue Number 414: This field specifies the first secondary    queue for which information is requested.-   h) CSSID 416: This field includes the CSSID of the channel subsystem    image that is associated with the specified range of target queues.    The CSSID is subject to range, existence and authorization checking.-   i) Last Queue Number 418: This field specifies the last secondary    queue for which information is requested.-   j) Last Request 420: This field when set indicates that this is the    last request for measurement data for the specified secondary    queues.

One embodiment of a command response block for the store secondary queuemeasurement data command is depicted in FIG. 4 b. In one example, acommand response block 440 for a store secondary queue measurement datacommand includes the following fields:

-   a) Length Field 442: This field specifies the length of the command    response block. The length depends, for instance, on the response    code that is stored as a result of the attempt to execute the store    secondary queue measurement data command.-   b) Response Code 444: This field describes the results of the    attempt to execute the store secondary queue measurement data    command.-   c) Format 446: This field includes a value that specifies the layout    of the command response block. In one example, the value is one    indicating a Format 1 command response block, which corresponds to    an extended block of, for instance, 64 words.-   d) Secondary Queue Measurement Block(s) 448: In one example, up to    15 Format 1 secondary queue measurement blocks are stored in the    response data area of the command response block. The number of    secondary queue measurement blocks stored depends on, for instance,    the number of secondary queues in the range specified in the command    response block; conditions in the channel subsystem; and the channel    subsystem model.

At least one secondary queue measurement block is stored and the actualnumber of blocks stored is determined by subtracting 8 bytes from thesize of the command response block and dividing by the size of each ofthe secondary queue measurement blocks stored, as indicated by theformat field in the command response block.

As described above, extended measurement blocks provide various kinds ofmeasurements used in performing workload and/or performance tuning onvarious machines. For compatibility with some operating systems, ameasurement block format field is added to the subchannel to indicatewhether a non-extended format or the new extended format measurementblock is to be stored for a subchannel. Similarly, as described above, afield in the store secondary queue measurement data command (e.g.,extended I/O measurement block format (E) 410) is used to request thatthe extended response block be stored for the command.

In addition to the extended I/O measurement block facility, an extendedI/O measurement word facility is provided, in accordance with a furtheraspect of the present invention. This facility facilitates the efficientobtaining of measurement data for a single I/O operation. It enables amachine to return measurement data to the program(e.g., operatingsystem) for a given I/O operation without requiring the program tocalculate the data for that I/O operation. In one example, the extendedI/O measurement word facility is enabled in the z/Architecture byexecuting a command that conveys information for a program to thechannel subsystem. The command includes an operation code that specifiesthe particular operation (e.g., enable the extended I/O measurement wordfacility) to be performed.

The measurement information for a particular I/O operation is storedinto an extended measurement word (EMW). One embodiment of an extendedmeasurement word is described with reference to FIG. 5. In one example,an extended measurement word 500 includes, for instance, the following:

-   a) Device Connect Time 502: This field includes the accumulation of    measured device connect time intervals. The device connect time    interval is the sum of the time intervals measured whenever the    device is logically connected to a channel path, while the    subchannel is subchannel active and the device is actively    communicating with the channel path.-   b) Function Pending Time 504: This field includes the accumulated    SSCH-and RSCH-function pending time. The function pending time is    the time interval between acceptance of the start function (or    resume function if the subchannel is in the suspended state) at the    subchannel and acceptance of the first command associated with the    initiation or resumption of channel program execution at the device.-   c) Device Disconnect Time 506: This field includes the accumulated    device disconnect time. The device disconnect time is the sum of the    time intervals measured whenever the device is logically    disconnected from the channel subsystem while the subchannel is    subchannel active. The device disconnect time also includes the sum    of control unit defer time intervals reported by the device during    the I/O operation.-   d) Control Unit Queuing Time 508: This field includes the    accumulated control unit queuing time. Control unit queuing time is    the sum of the time intervals measured by the control unit whenever    the device is logically disconnected from the channel subsystem    during an I/O operation while the device is busy with an operation    initiated from a different system.-   e) Device Active Only Time 510: This field includes the accumulated    device active only time. Device active only time is the sum of the    time intervals when the subchannel is device active, but not    subchannel active at the end of an I/O operation or chain of I/O    operations initiated by a start function or resume function. f)    Device Busy Time 511: This field includes the accumulated device    busy time. Device busy time is the sum of the time intervals when    the subchannel is device busy during an attempt to initiate a start    function or resume function at the subchannel.-   g) Initial Command Response Time 512: This field includes the    accumulated initial command response time for the subchannel. The    initial command response time for a start or resume function is the    time interval beginning from when the first command of the channel    program is sent to the device until the device indicates it has    accepted the command.

The extended measurement word eliminates the need for the program tofetch the channel measurement block both before and after an I/Ooperation in order to calculate the measurement data for that specificoperation. In one example, each measurement field in the EMW may bestored with a time resolution of as low as one-half microsecond (via thelow order bits of the counters) to provide the accuracy desired formeasurements associated with a single I/O operation. For example, thechannel subsystem timing facility provides a timer with a resolutionthat is appropriate for the speed of the I/O operations supported by thesubsystem. The extended measurement word is returned in an interruptionresponse block (IRB) obtained by issuing, for instance, a testsubchannel instruction. General register 1 , which is an implied operandfor the instruction, includes the subsystem identification word thatdesignates the subchannel for which the information is to be stored. Thesecond operand address designated in the instruction is the logicaladdress of the IRB. The interruption response block includes, forinstance, a subchannel status word, an extended status word, an extendedcontrol block and the extended measurement word. Further detailsregarding an IRB and the test subchannel instruction, without theextensions of the present invention, are described in an IBM Publicationentitled “z/Architecture Principles of Operation,” Publication No.SA22-7832-01, October 2001, which is hereby incorporated herein byreference in its entirety.

One embodiment of the logic associated with obtaining the extendedmeasurement word, in accordance with an aspect of the present invention,is described with reference to FIG. 6. Initially, an I/O operation, suchas a start subchannel instruction, is executed, STEP 600. Duringprocessing of the I/O operation, measurement data is obtained by thechannel subsystem, STEP 602. In one example, the types of data that areobtained are those described in the extended measurement word describedabove. In other examples, the types of data stored may be different. Theactual calculation of the data can be performed in various ways, asknown to those skilled in the art.

The measurement data that is collected is saved in the subchannel, STEP604. In one example, it is stored in an internal control block withinthe subchannel. In response to completion of the I/O operation, an I/Ointerrupt is generated, STEP 606. When the program (e.g., the operatingsystem) detects the interrupt, it issues a test subchannel instruction,STEP 608. The test subchannel instruction pulls the information from thesubchannel control block and places it in the EMW which is returned aspart of the IRB, STEP 610. The extended measurement word includes I/Omeasurement information for the most recent start or resume operationperformed at the subchannel. Thus, this enables data to be provided fora single I/O operation. Each field in the EMW, when valid, includes acount in which each increment of the count represents a value of, forinstance, 0.5 microseconds.

For compatibility with other operating systems, an extended measurementword enable field is added to the subchannel to indicate whether theextended measurement word should be stored in the IRB. When the enablefield indicates the subchannel is enabled for extended measurement wordmode, measurement data is stored in the EMW at the time channel programexecution is completed, or suspended at the subchannel or completed atthe device, as appropriate.

Described in detail above are measurement facilities that facilitate theobtaining of measurement data associated with subchannels of a channelsubsystem. Advantageously, the extended I/O measurement facility allowsfor additional measurement information to be stored and removes the needto allocate a single contiguous channel measurement block area in mainreal storage. Instead, each subchannel is assigned a unique measurementblock address that identifies the location of a channel measurementblock for the associated device. Use of this facility allows the channelsubsystem to directly access the channel measurement blocks withouthaving to use measurement block origins and measurement block indexes tolocate the measurement blocks.

The extended I/O measurement word facility advantageously enables theefficient obtaining of measurement data for a single operation. Iteliminates the need for the program to fetch the channel measurementblock both before and after an I/O operation in order to calculate themeasurement data for that specific operation. Additionally, it allowsthe storing of data to be within a time resolution of approximately aslow as one-half microsecond, depending on the capabilities of thechannel subsystem.

Although various embodiments are described above, these are onlyexamples. Additions, deletions and/or modifications to the aboveembodiments may be made, without departing from the spirit of aspects ofthe present invention. For instance, although a computing environment isdescribed above, many different computing environments may be used. Forinstance, more or less logical partitions (or other zones) may beincluded in the environment. Further, one or more partitions can berunning in different architecture modes. Further, there may be multiplecentral processing complexes coupled together. These are just some ofthe variations that can be made without departing from the spirit fromthe present invention. Other variations are possible. For example, acomputing environment that includes a plurality of multiple channelsubsystems, one or more of which include multiple images, may beprovided. Also, the computing environment need not be based on thez/Architecture. Further, an environment may be provided that does notinclude logical partitioning and/or MCSS.

Moreover, an environment may include an emulator (e.g., software orother emulation mechanisms), in which a particular architecture orsubset thereof, is emulated. In such an environment, one or moreemulation functions of the emulator can implement one or more aspects ofthe present invention, even though a computer executing the emulator mayhave a different architecture than the capabilities being emulated. Asone example, in emulation mode, the specific instruction or operationbeing emulated is decoded, and an appropriate emulation function isbuilt to implement the individual instruction or operation.

Yet further, even though in the above embodiments, a channel pathincludes a control unit, this is not necessary. A channel path may notconnect to a control unit or a device, such as with Ethernet channelpaths or channel to channel adapters, as examples. These types ofchannel paths, as well as others are within the spirit of one or moreaspects of the present invention.

As yet another example, although an LPAR hypervisor is given as anexample, other hypervisors, such as a virtual machine hypervisor, aswell as others, may be used.

Additionally, although the commands described herein have variousfields, more, less or different fields may be provided. Further, thepositions of the fields in the figures do not necessarily indicate theposition within a control block. Other positions may be available.Similarly, although in some contexts, specific bytes or bits aredescribed, these are only examples. Other bytes or bits may be used.Further, other sizes may be provided.

Moreover, although the measurement blocks are associated withsubchannels in the examples provided herein, in other examples, themeasurement blocks may be associated with other components of the I/Osubsystem.

The above are only some examples of the enhancements/modifications thatcan be made. Others are possible without departing from the spirit ofone or more aspects of the present invention.

The present invention can be included in an article of manufacture(e.g., one or more computer program products) having, for instance,computer usable media. The media has embodied therein, for instance,computer readable program code means or logic (e.g., instructions, code,commands, etc.) to provide and facilitate the capabilities of thepresent invention. The article of manufacture can be included as a partof a computer system or sold separately.

Additionally, at least one program storage device readable by a machineembodying at least one program of instructions executable by the machineto perform the capabilities of the present invention can be provided.

The diagrams depicted herein are just examples. There may be manyvariations to these diagrams or the steps (or operations) describedtherein without departing from the spirit of the invention. Forinstance, the steps may be performed in a differing order, or steps maybe added, deleted or modified. All of these variations are considered apart of the claimed invention.

Although preferred embodiments have been depicted and described indetail herein, it will be apparent to those skilled in the relevant artthat various modifications, additions, substitutions and the like can bemade without departing from the spirit of the invention and these aretherefore considered to be within the scope of the invention as definedin the following claims.

What is claimed is:
 1. A computer implemented method for obtainingmeasurement data for an input/output (I/O)operation, the methodcomprising: building a software routine to emulate execution of aninstruction of a first computer environment on a general purposeprocessor of an alternate computer environment, the software routineconfigured to cause the general purpose processor of the alternatecomputer architecture to perform a method comprising executing, by aprocessor, a test subchannel instruction a test subchannel instructiondesignating a subchannel and a memory address of an interruptionresponse block (IRB), the execution comprising: conditionally storinggathered measurement data in an extended measurement word (EMW) of theinterruption response block.
 2. The method according to claim 1, whereinthe conditionally storing further comprising: determining, by theprocessor, whether an EMW enable field of the designated subchannel isenabled; based on the EMW field being enabled, storing the gatheredmeasurement data in the EMW of the interruption response block; andbased on the EMW field being not-enabled, not-storing the gatheredmeasurement data in the EMW of the interruption response block.
 3. Themethod according to claim 1, wherein the test subchannel instruction isan instruction of a first processor architecture, wherein the executingthe test subchannel instruction of a first processor architecture isperformed by an emulation instructions of a second processorarchitecture.
 4. The method according to claim 1, further comprising:prior to initiating the I/O operation, indicating to a channel subsystemthat an Extended I/O Measurement Word Facility is enabled, wherein thegathering is performed based on the Extended I/O Measurement WordFacility being enabled.
 5. The method according to claim 4, wherein theexecuting the test subchannel is initiated responsive to a notificationsignaling a completion of the I/O operation, wherein the test subchannelinstruction designates the subchannel and an address of an I/O responseblock (IRB), wherein the EMW is associated with the IRB.
 6. The methodaccording to claim 4, wherein the measurement data placed in theExtended Measurement Word comprises one or more of the followingelements: device connect time; function pending time; device disconnecttime; control unit queuing time; device active only time; device busytime; and initial command response time.
 7. The method according toclaim 4, wherein the gathered measurement data has a time resolution ofapproximately one-half microsecond.